package com.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.project.dto.AcceptanceAllDTO;
import com.project.entity.AcceptanceRecords;
import com.project.dto.AcceptanceDTO;
import com.project.dto.InspectionQueryDTO;
import com.project.result.PageResult;
import com.project.vo.AcceptancePageVO;
import com.project.vo.AcceptanceVO;
import com.project.vo.InspectionSummaryVO;
import com.project.vo.MaterialRequestVO;

import java.time.LocalDate;

public interface AcceptanceService extends IService<AcceptanceRecords> {

    /**
     * 根据ID获取验收记录详情
     * @param id 验收记录ID
     * @return 验收记录详情
     */
    AcceptanceVO get(Long id);

    /**
     * 分页查询验收记录列表
     * @param inspectionQueryDTO 查询条件
     * @return 分页结果
     */
    PageResult<AcceptancePageVO> listall(InspectionQueryDTO inspectionQueryDTO);

    /**
     * 根据验收单号获取验收记录详情
     * @param acceptanceNo 验收单号
     * @return 验收记录详情
     */
    AcceptanceVO getInspectionSummary(String acceptanceNo);

    /**
     * 获取检验统计信息
     * @param start 开始日期
     * @param end 结束日期
     * @return 检验统计信息
     */
    InspectionSummaryVO getInspectionStatistics(LocalDate start, LocalDate end);

    /**
     * 创建新的验收记录
     * @param acceptanceAllDTO 验收记录数据传输对象
     */
    void create(AcceptanceAllDTO acceptanceAllDTO);

    /**
     * 更新验收记录状态
     * @param id 验收记录ID
     * @param status 新的状态值
     */
    void updateStatus(Long id, Integer status);
}